package control;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import model.CheckPoint;
import model.Groupe;
import model.Itineraire;
import parameter.ParameterItineraire;
import referential.Position;
import referential.TypeEuropeen;
import referential.TypeOrignalité;

public class Traitements implements ParameterItineraire{

  public static List<Itineraire> listItineraires = new ArrayList<Itineraire>();
  public static List<CheckPoint> listeGroupe = new ArrayList<CheckPoint>();
  public static List<Itineraire> listItinerairesTemporaires = new ArrayList<Itineraire>();
  public static List<CheckPoint> listCheckPoint = new ArrayList<CheckPoint>();
  public static Timestamp tDebut;
  public static Timestamp tFin;
  public static List<CheckPoint> listCheckPointObligatoire = new ArrayList<CheckPoint>();

  
  public static void intialiserCheckPointObligatoire() {
    listCheckPointObligatoire.add(new CheckPoint(179,"place_du_chateau_T_1","179","JoyeuxAnniversairelaCathedrale!",10,852,new Position(7.751090526580811,48.581419612431773),10,TypeOrignalité.O3,true,false,TypeEuropeen.E0,false,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPointObligatoire.add(new CheckPoint(138,"place_broglie_T_2","138","Drapeaueuropeen",10,2500,new Position(7.74985671043396,48.584762526132984),12,TypeOrignalité.O3,true,true,TypeEuropeen.E3,false,false,true,false,false,false,true,false,true,false,true,true,false,false));
  }
  
  /**
   * Methode qui permet de charger la liste es itineraire Conseil : dans Excel :
   * utiliser la focntion CONTACTENER pour automatiser la generation de ces
   * lignes
   */
  static int id = 0;
  public static void initialiserCheckPoint() {
    listCheckPoint.add(new CheckPoint(324,"rue_Jacques_Balde_2","324","Lancerdebudget",10,6,new Position(7.76958167552948,48.587580054495298),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(1,"rue_Turenne","1","QuiSuis_Je?",10,3,new Position(7.75871068239212,48.588160218729143),20,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(2,"rue_Jacques_Balde_1","2","Lancerdebudget",10,6,new Position(7.768798470497131,48.587697152400104),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(3,"Quai_Zom","22_Hultz","QuiSuis_Je?",10,3,new Position(7.760655283927918,48.590276785894531),20,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(6,"rue_du_quai_des_arquebusers","6","LEuropeAlAveugle",10,6,new Position(7.760574817657471,48.591618001343278),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(7,"dHirtz_Trubner","7","Lancerdebudget",10,6,new Position(7.770788669586181,48.588694247809435),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(8,"Rue_Trubner","8","Lancerdebudget",10,6,new Position(7.771475315093994,48.588687151114492),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(9,"Erwin_Hultz","22_Hultz","QuiSuis_Je?",10,3,new Position(7.762406766414641,48.590675960880027),20,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(10,"agora_1","10","QuiSuis_Je?",10,3,new Position(7.775420844554901,48.596042340608427),20,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,false,false,false,false,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(11,"allé_anton_de_bary_1","11","FrontexPervier",10,8,new Position(7.765654921531676,48.583417580006056),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(12,"allee_des_soupirs_4","33_Soupirs","CoursedeGarçonsdeCafe",10,8,new Position(7.758171558380126,48.59886988297044),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(13,"allee_des_soupirs_5","33_Soupirs","CoursedeGarçonsdeCafe",10,8,new Position(7.759137153625488,48.598607357471309),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(14,"allee_des_soupirs_6","14","Lesstatueseuropeennes",10,15,new Position(7.75981307029724,48.598437069931578),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(15,"allee_des_soupirs_T_1","12_Soupirs","ListenUp",10,12,new Position(7.759909629821777,48.598273877167308),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(16,"allee_des_soupirs_T_2","12_Soupirs","ListenUp",10,12,new Position(7.759383916854858,48.598422879277344),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(17,"allee_des_soupirs_T_3","12_Soupirs","ListenUp",10,12,new Position(7.758772373199463,48.598586071560227),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(18,"ancienne_douane_1","7_douane","TaboosurlespaysdEurope",10,12,new Position(7.750092744827271,48.579396722885207),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(19,"ancienne_douane_2","7_douane","TaboosurlespaysdEurope",10,12,new Position(7.749717235565186,48.579244115653026),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(20,"ancienne_douane_3","7_douane","TaboosurlespaysdEurope",10,12,new Position(7.749432921409607,48.579134096199866),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(21,"ancienne_douane_3","21","Twister",10,16,new Position(7.748730182647705,48.579052468708902),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(22,"ancienne_synagogue_les_halles_T_1","22","RecetteEnFouillis",10,6,new Position(7.742443084716797,48.585592897164332),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(23,"ancienne_synagogue_les_halles_T_2","23","RecetteEnFouillis",10,6,new Position(7.742249965667725,48.585543217229919),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(24,"ancienne_synagogue_les_halles_T_3","24","RecetteEnFouillis",10,6,new Position(7.742046117782593,48.585479342956809),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(25,"arte_1","28_arte","TokyoTrain",10,8,new Position(7.766242325305939,48.593454131428075),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(26,"arte_2","28_arte","TokyoTrain",10,8,new Position(7.766534686088562,48.594332257011985),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(27,"avenue_de_leurope_1","27","Reconstitutionshistoriques",10,6,new Position(7.770056426525115,48.592822581168782),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(29,"avenue_de_leurope_3","45_OrangerieEst","Lesstatueseuropeennes",10,15,new Position(7.771217823028565,48.592952085095689),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(30,"avenue_de_leurope_5","45_OrangerieEst","Lesstatueseuropeennes",10,15,new Position(7.771861553192138,48.593370753054025),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(31,"avenue_de_leurope_7","45_OrangerieEst","Lesstatueseuropeennes",10,15,new Position(7.77255892753601,48.593704265724675),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(32,"avenue_de_leurope_9","45_OrangerieEst","Lesstatueseuropeennes",10,15,new Position(7.772934436798095,48.594215174482613),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(33,"avenue_de_leurope_T_2","3_OrangerieEst","Creationdunehistoire",10,12,new Position(7.770917415618896,48.592753394003296),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,true,false));
    listCheckPoint.add(new CheckPoint(34,"avenue_de_leurope_T_4","3_OrangerieEst","Creationdunehistoire",10,12,new Position(7.771496772766112,48.593150775406755),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,true,false));
    listCheckPoint.add(new CheckPoint(35,"avenue_de_leurope_T_6","3_OrangerieEst","Creationdunehistoire",10,12,new Position(7.772043943405151,48.593533961657279),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,true,false));
    listCheckPoint.add(new CheckPoint(36,"avenue_de_leurope_T_8","3_OrangerieEst","Creationdunehistoire",10,12,new Position(7.772773504257203,48.593831993398538),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,true,false));
    listCheckPoint.add(new CheckPoint(37,"avenue_du_général_de_gaulle_1","23_AvDeGaulle","LEuropeAlAveugle",10,6,new Position(7.770112752914429,48.579964559702553),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(38,"avenue_du_général_de_gaulle_2","23_AvDeGaulle","LEuropeAlAveugle",10,6,new Position(7.769351005554198,48.579744523692796),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(39,"avenue_du_général_de_gaulle_3","23_AvDeGaulle","LEuropeAlAveugle",10,6,new Position(7.769039869308472,48.57814745943385),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(40,"avenue_du_général_de_gaulle_4","23_AvDeGaulle","LEuropeAlAveugle",10,6,new Position(7.768610715866088,48.579449957857797),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(41,"avenue_du_president_robert_schuman_1","41","TaboosurlespaysdEurope",10,12,new Position(7.769393920898437,48.595325673616081),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,true,false));
    listCheckPoint.add(new CheckPoint(42,"avenue_du_president_robert_schuman_2","34_ParkingEurope","FrontexPervier",10,8,new Position(7.767580747604369,48.594229366318793),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(43,"avenue_du_president_robert_schuman_3","34_ParkingEurope","FrontexPervier",10,8,new Position(7.767355442047119,48.593874569218052),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(44,"bains_municipaux","44","Europedesrealisationsquotidiennes",10,6,new Position(7.76005983352661,48.583804388759155),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,true,false,false,true,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(45,"boulevard_tauler_1","45","Lancerdebudget",10,6,new Position(7.76943415403366,48.588387314841668),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(46,"campus_1","14_PlaceRouge","Resolutiondeconflits",10,8,new Position(7.765606641769408,48.578630133063498),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(47,"campus_2","14_PlaceRouge","Resolutiondeconflits",10,8,new Position(7.765606641769408,48.579347036860177),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(48,"campus_3","14_PlaceRouge","Resolutiondeconflits",10,8,new Position(7.767183780670167,48.579815503155444),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(49,"cedh_1","49","TokyoTrain",10,8,new Position(7.774852216243744,48.596157644991933),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(50,"cedh_2","50","Dixit",10,3,new Position(7.77344137430191,48.596602894833417),20,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(51,"citadelle_1","38_Citadelle","FixBall",10,16,new Position(7.774490118026733,48.576954951884773),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(52,"citadelle_2","38_Citadelle","FixBall",10,16,new Position(7.774243354797362,48.576876870052104),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(53,"citadelle_3","38_Citadelle","FixBall",10,16,new Position(7.773127555847167,48.576387081259988),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(54,"citadelle_4","38_Citadelle","FixBall",10,16,new Position(7.773352861404419,48.576472262260346),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(55,"citadelle_5","14_Citadelle","Resolutiondeconflits",10,8,new Position(7.772151231765746,48.576230915719897),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(56,"citadelle_6","14_Citadelle","Resolutiondeconflits",10,8,new Position(7.771936655044555,48.576032158880274),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(57,"citadelle_7","14_Citadelle","Resolutiondeconflits",10,8,new Position(7.771850824356079,48.576195423484414),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(58,"cour_du_palais_rohan_T_1","3_QuaisMusees","Creationdunehistoire",10,12,new Position(7.75232970714569,48.580564330413907),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(59,"cour_du_palais_rohan_T_2","3_QuaisMusees","Creationdunehistoire",10,12,new Position(7.752463817596435,48.580624661985006),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(60,"cour_du_palais_rohan_T_3","3_QuaisMusees","Creationdunehistoire",10,12,new Position(7.752630114555358,48.580695640211772),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(61,"cour_du_palais_rohan_T_4","3_QuaisMusees","Creationdunehistoire",10,12,new Position(7.752791047096252,48.580770167242619),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(62,"cour_saint_nicolas_1","62","TaboosurlespaysdEurope",10,12,new Position(7.748263478279113,48.578275226431401),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(63,"eglise_saint_paul_1","6_StPaul","JeparsenvoyageenEurope",10,18,new Position(7.759609222412109,48.585990334881494),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(64,"eglise_saint_paul_2","6_StPaul","JeparsenvoyageenEurope",10,18,new Position(7.760033011436462,48.586160664374908),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(65,"eglise_saint_paul_3","6_StPaul","JeparsenvoyageenEurope",10,18,new Position(7.760210037231445,48.58642325455255),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(66,"eglise_saint_paul_4","6_StPaul","JeparsenvoyageenEurope",10,18,new Position(7.759754061698914,48.586568743117645),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(70,"france_3_alsace_1","70","Euroku",10,4,new Position(7.759287357330321,48.594420955717247),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,true,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(71,"impasse_de_la_bière","71","RecetteEnFouillis",10,6,new Position(7.752431631088257,48.583009475818812),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(72,"impasse_des_charpentiers","72","RecetteEnFouillis",10,6,new Position(7.751900553703308,48.583815034829748),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(73,"impasse_des_echasses_1","16_Dome","Dixit",10,3,new Position(7.751082479953766,48.583660666586425),20,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(74,"impasse_du_bain_aux_plantes_1","74","Twister",10,16,new Position(7.739701867103577,48.581181838385433),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(75,"impasse_du_tiroir_1","16_Dome","Dixit",10,3,new Position(7.750369012355804,48.583053835129228),20,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(76,"impasse_sainte_madeleine_1","76","TaboosurlespaysdEurope",10,12,new Position(7.75408923625946,48.579283154756268),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(82,"lieu_deurope_1","6_LieuDEurope","JeparsenvoyageenEurope",10,18,new Position(7.777263522148132,48.597074748948224),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(83,"lieu_deurope_2","6_LieuDEurope","JeparsenvoyageenEurope",10,18,new Position(7.777445912361144,48.597436619042675),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(84,"orangerie_C_1","84","Reconstitutionshistoriques",10,6,new Position(7.775423526763916,48.592164412245594),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(85,"orangerie_C_T_2","2_Orangerie_Centre","ConvaincreSurLEurope",10,6,new Position(7.775664925575256,48.591703156677781),10,TypeOrignalité.O2,false,false,TypeEuropeen.E3,true,true,false,true,false,false,false,true,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(86,"orangerie_C_T_3","2_Orangerie_Centre","ConvaincreSurLEurope",10,6,new Position(7.776115536689758,48.591976362407117),10,TypeOrignalité.O2,false,false,TypeEuropeen.E3,true,true,false,true,false,false,false,true,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(87,"orangerie_E_1","37_OrangerieEst","Attrape_MoiSiTuPeux",10,12,new Position(7.773014344225601,48.59121749941913),10,TypeOrignalité.O0,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,false,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(88,"orangerie_E_2","37_OrangerieEst","Attrape_MoiSiTuPeux",10,12,new Position(7.773400582323746,48.591444582894368),10,TypeOrignalité.O0,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,false,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(89,"orangerie_E_3","37_OrangerieEst","Attrape_MoiSiTuPeux",10,12,new Position(7.772760180064219,48.592061373537277),10,TypeOrignalité.O0,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,false,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(90,"orangerie_E_4","37_OrangerieEst","Attrape_MoiSiTuPeux",10,12,new Position(7.773382452555674,48.591908802036265),10,TypeOrignalité.O0,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,false,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(91,"orangerie_E_5","37_OrangerieEst","Attrape_MoiSiTuPeux",10,12,new Position(7.773902801104562,48.591756230074559),10,TypeOrignalité.O0,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,false,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(92,"orangerie_O_1","6_OrangerieEst","JeparsenvoyageenEurope",10,18,new Position(7.772054672241211,48.592320528560954),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(93,"orangerie_O_2","6_OrangerieEst","JeparsenvoyageenEurope",10,18,new Position(7.773009538650512,48.593044334265848),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(94,"orangerie_O_3","6_OrangerieEst","JeparsenvoyageenEurope",10,18,new Position(7.774114608764648,48.593789417543114),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(95,"palais_de_leurope_2","95","TaboosurlespaysdEurope",10,12,new Position(7.772603183984757,48.595904861961074),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,true,false));
    listCheckPoint.add(new CheckPoint(96,"palais_universitaire_10","35_PalaisUniversitaire","GymnastiqueEuropeenne",10,8,new Position(7.763171195983887,48.584258619111885),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,true,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(97,"palais_universitaire_11","35_PalaisUniversitaire","GymnastiqueEuropeenne",10,8,new Position(7.764372825622558,48.584542511009317),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,true,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(98,"palais_universitaire_6","35_PalaisUniversitaire","GymnastiqueEuropeenne",10,8,new Position(7.761261463165282,48.584585094656383),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,true,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(99,"palais_universitaire_7","99","Reconstitutionshistoriques",10,6,new Position(7.761068344116211,48.585010929153754),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(100,"palais_universitaire_8","35_PalaisUniversitaire","GymnastiqueEuropeenne",10,8,new Position(7.761797904968263,48.585280622479658),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,true,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(101,"palais_universitaire_9","35_PalaisUniversitaire","GymnastiqueEuropeenne",10,8,new Position(7.763621807098389,48.584954151428065),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,true,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(102,"palais_universitaire_T_1","1_PalaisUniversitaire","Photo_Langage",10,12,new Position(7.760102748870849,48.584868984719954),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(103,"palais_universitaire_T_2","1_PalaisUniversitaire","Photo_Langage",10,12,new Position(7.760682106018066,48.584684456360009),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(104,"palais_universitaire_T_3","1_PalaisUniversitaire","Photo_Langage",10,12,new Position(7.760553359985351,48.585110290020211),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(105,"palais_universitaire_T_4","1_PalaisUniversitaire","Photo_Langage",10,12,new Position(7.761411666870117,48.585280622479658),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(106,"palais_universitaire_T_5","1_PalaisUniversitaire","Photo_Langage",10,12,new Position(7.76209831237793,48.585426114334183),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(107,"parc_contades_01","32_contades","Beret",10,12,new Position(7.757447361946106,48.589203433071994),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(108,"parc_contades_02","32_contades","Beret",10,12,new Position(7.75708794593811,48.589755192494579),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(109,"parc_contades_03","32_contades","Beret",10,12,new Position(7.757527828216553,48.590546451119188),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(110,"parc_contades_04","32_contades","Beret",10,12,new Position(7.758074998855591,48.590177435185822),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(111,"parc_contades_05","32_contades","Beret",10,12,new Position(7.758976221084595,48.590929657120753),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(112,"parc_contades_06","32_contades","Beret",10,12,new Position(7.759402692317962,48.591389145670675),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(113,"parc_contades_07","32_contades","Beret",10,12,new Position(7.758997678756713,48.591743960224704),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(114,"parc_contades_08","32_contades","Beret",10,12,new Position(7.758485376834869,48.591236574646416),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(115,"parc_contades_09","36_Contades","CombatdeSumo_Scouts",10,8,new Position(7.758343219757079,48.590674186775964),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(116,"parc_contades_10","36_Contades","CombatdeSumo_Scouts",10,8,new Position(7.758104503154755,48.590773536507982),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(117,"parc_contades_T_11","1_contades","Photo_Langage",10,12,new Position(7.759483158588409,48.591905400022036),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(118,"parc_contades_T_12","1_contades","Photo_Langage",10,12,new Position(7.760041058063507,48.591406886457555),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(119,"parc_contades_T_13","1_contades","Photo_Langage",10,12,new Position(7.757656574249268,48.589992926208538),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(120,"parc_contades_T_14","1_contades","Photo_Langage",10,12,new Position(7.758034765720367,48.589576004403781),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(121,"parc_contades_T_15","1_contades","Photo_Langage",10,12,new Position(7.757838964462279,48.591135451736967),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(123,"parlement_2","123","Twister",10,16,new Position(7.768473923206329,48.599256573450511),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(124,"passerelle_des_moulins_1","124","LEuropeATrous",10,4,new Position(7.742947340011597,48.579694838009665),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(125,"pavillon_josephine_3","45_OrangerieEst","Lesstatueseuropeennes",10,15,new Position(7.774307727813721,48.592221181870642),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(126,"pavillon_josephine_4","45_OrangerieEst","Lesstatueseuropeennes",10,15,new Position(7.775262594223023,48.592859835757118),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(127,"pavillon_josephine_T_1","3_OrangerieEst","Creationdunehistoire",10,12,new Position(7.77483344078064,48.592859835757118),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(128,"pavillon_josephine_T_2","3_OrangerieEst","Creationdunehistoire",10,12,new Position(7.774329185485839,48.592512125197793),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(129,"place_adrien_zeller_1","42_Zeller","Twister",10,16,new Position(7.761712074279784,48.598429974604954),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(130,"place_adrien_zeller_2","42_Zeller","Twister",10,16,new Position(7.761518955230713,48.598862787704626),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(131,"place_adrien_zeller_3","42_Zeller","Twister",10,16,new Position(7.761164903640747,48.598408688619138),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(132,"place_arnold_1","14_arnold","Resolutiondeconflits",10,8,new Position(7.769994735717773,48.584847693020514),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(133,"place_arnold_2","14_arnold","Resolutiondeconflits",10,8,new Position(7.769705057144165,48.584613483734508),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(134,"place_arnold_3","14_arnold","Resolutiondeconflits",10,8,new Position(7.770305871963502,48.58440766255687),45,TypeOrignalité.O3,false,false,TypeEuropeen.E3,false,true,false,true,false,true,false,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(135,"place_arnold_4","135","Lancerdebudget",10,6,new Position(7.770295143127441,48.585152873188896),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(136,"place_benjamin_zix_1","136","Semaphore",10,3,new Position(7.742239236831665,48.581277657911798),20,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,true,false,false,false,false,true,true,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(137,"place_broglie_T_1","137","TheatredelOpprime",10,20,new Position(7.751541137695313,48.585493537246698),30,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,true,false,false,false,true,false,false,true,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(139,"place_charles_de_foucauld_T_1","1_foucauld","Photo_Langage",10,12,new Position(7.748413681983948,48.588406830866234),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(140,"place_charles_de_foucauld_T_2","1_foucauld","Photo_Langage",10,12,new Position(7.748944759368897,48.588644570923776),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(141,"place_charles_de_foucauld_T_3","1_foucauld","Photo_Langage",10,12,new Position(7.74913787841797,48.58833231509557),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(142,"place_charles_de_foucauld_T_4","1_foucauld","Photo_Langage",10,12,new Position(7.748714089393615,48.588012960548255),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(143,"place_dausterliz_4","6_austerlitz","JeparsenvoyageenEurope",10,18,new Position(7.753536701202394,48.578072928536187),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(144,"place_dausterliz_5","6_austerlitz","JeparsenvoyageenEurope",10,18,new Position(7.75360107421875,48.577870629831409),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(145,"place_dausterliz_T_1","4_austerlitz","DessinInfini",10,6,new Position(7.753987312316895,48.57822553930405),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(146,"place_dausterliz_T_2","4_austerlitz","DessinInfini",10,6,new Position(7.753166556358338,48.57782804052723),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(147,"place_dausterliz_T_3","4_austerlitz","DessinInfini",10,6,new Position(7.752930521965027,48.577955808332078),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(148,"place_de_la_cathedrale_1","148","Porteurdeparole",10,8,new Position(7.750736474990844,48.58210808619814),15,TypeOrignalité.O1,false,false,TypeEuropeen.E2,true,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(149,"place_de_la_chaine_dor_1","149","Twister",10,16,new Position(7.746224999427795,48.581022138771168),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(150,"place_de_la_gare_1","150","JeparsenvoyageenEurope",10,18,new Position(7.735485434532165,48.584450246317566),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(151,"place_de_la_gare_2","151","JeparsenvoyageenEurope",10,18,new Position(7.735962867736816,48.584684456360009),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(152,"place_de_la_gare_3","152","Euroku",10,4,new Position(7.735919952392578,48.584961248647268),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(154,"place_de_la_republique_1","43_republique","Reconstitutionshistoriques",10,6,new Position(7.753890752792358,48.587147144733862),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(155,"place_de_la_republique_6","32_republique","Beret",10,12,new Position(7.754116058349609,48.587498440643621),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(156,"place_de_la_republique_7","43_republique","Reconstitutionshistoriques",10,6,new Position(7.752973437309265,48.587512634366405),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(157,"place_de_la_republique_8","32_republique","Beret",10,12,new Position(7.752839326858521,48.586909397631572),10,TypeOrignalité.O0,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(158,"place_de_la_republique_9","158","Euroku",10,4,new Position(7.754309177398681,48.586444545588243),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(159,"place_de_la_republique_T_2","1_republique","Photo_Langage",10,12,new Position(7.753536701202394,48.58711875707894),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(160,"place_de_la_republique_T_3","1_republique","Photo_Langage",10,12,new Position(7.75409460067749,48.586934236933381),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(161,"place_de_la_republique_T_4","1_republique","Photo_Langage",10,12,new Position(7.754405736923218,48.587338760987365),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(162,"place_de_la_republique_T_5","1_republique","Photo_Langage",10,12,new Position(7.753762006759644,48.587544570228154),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,true,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(163,"place_de_lhopital","7_PlaceHopital","TaboosurlespaysdEurope",10,12,new Position(7.74963140487671,48.577324064370238),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(164,"place_de_zurich_3","164","Europedesrealisationsquotidiennes",10,6,new Position(7.756637334823608,48.57983679697481),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,true,false,false,true,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(165,"place_de_zurich_4","165","Dixit",10,3,new Position(7.757098674774169,48.579609662439225),20,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(166,"place_de_zurich_T_1","4_zurich","DessinInfini",10,6,new Position(7.756771445274352,48.579634505328748),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(167,"place_de_zurich_T_2","4_zurich","DessinInfini",10,6,new Position(7.757374942302704,48.579694838009665),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(168,"place_de_zurich_T_3","4_zurich","DessinInfini",10,6,new Position(7.757938206195831,48.579599015482813),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(169,"place_des_bateliers_1","169","Euroku",10,4,new Position(7.755789756774902,48.580929867652969),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(170,"place_des_etudiants_1","170","Europedesrealisationsquotidiennes",10,6,new Position(7.747893333435058,48.583964079582856),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,true,false,false,true,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(171,"place_des_glycines_1","171","Twister",10,16,new Position(7.767886519432068,48.595958966505634),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(172,"place_des_meuniers_T_1","12_GrandRue","ListenUp",10,12,new Position(7.742062211036681,48.581845473599756),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(173,"place_des_meuniers_T_2","12_GrandRue","ListenUp",10,12,new Position(7.742013931274413,48.581754978401769),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(174,"place_des_meuniers_T_3","12_GrandRue","ListenUp",10,12,new Position(7.741745710372925,48.581836601528678),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(175,"place_des_orphelins","175","JeparsenvoyageenEurope",10,18,new Position(7.754051685333252,48.578725957426961),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(176,"place_des_tripiers_T_1","3_VieilHopital_Tripiers","Creationdunehistoire",10,12,new Position(7.749449014663696,48.580379786337595),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(177,"place_des_tripiers_T_2","3_VieilHopital_Tripiers","Creationdunehistoire",10,12,new Position(7.74936318397522,48.580351394881454),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(178,"place_du_chateau_2","178","Dixit",10,3,new Position(7.751755714416503,48.581547371158919),20,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(180,"place_du_corbeau_1","180","ConvaincreSurLEurope",10,6,new Position(7.751289010047913,48.579279605748148),10,TypeOrignalité.O2,false,false,TypeEuropeen.E3,true,true,false,true,false,false,false,true,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(181,"place_du_corbeau_2","181","Apprends_moiquelquechose..",10,6,new Position(7.751449942588806,48.579400271885113),10,TypeOrignalité.O1,false,true,TypeEuropeen.E1,true,true,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(182,"place_du_corbeau_3","182","Porteurdeparole",10,8,new Position(7.751428484916686,48.579169586372203),15,TypeOrignalité.O1,false,false,TypeEuropeen.E2,true,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(183,"place_du_foin_T_1","27_Foin","Euroku",10,4,new Position(7.761484086513519,48.579638054311992),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(184,"place_du_foin_T_2","27_Foin","Euroku",10,4,new Position(7.761666476726531,48.579591917510633),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(185,"place_du_frere_medard_1","185","CombatdeSumo_Scouts",10,8,new Position(7.755121886730194,48.582879946409584),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,false,true,false,true,false,true,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(186,"place_du_marche_aux_poissons_T_1","3_QuaisMusees","Creationdunehistoire",10,12,new Position(7.751846909523009,48.580305258731194),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(187,"place_du_marche_aux_poissons_T_2","3_QuaisMusees","Creationdunehistoire",10,12,new Position(7.751964926719665,48.580358492746974),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(188,"place_du_marche_aux_poissons_T_3","3_QuaisMusees","Creationdunehistoire",10,12,new Position(7.752050757408141,48.580411726706721),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(189,"place_du_marché_gayot_T_1","189","Porteurdeparole",10,8,new Position(7.753214836120606,48.582629758528725),15,TypeOrignalité.O1,false,false,TypeEuropeen.E2,true,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(190,"place_du_pont_aux_chats_T_1","20_PlaceDuPont","LEuropeATrous",10,4,new Position(7.756658792495728,48.581309597713563),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(191,"place_du_pont_aux_chats_T_2","20_PlaceDuPont","LEuropeATrous",10,4,new Position(7.756650745868682,48.581357507378343),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(192,"place_du_quartier_blanc_1","192","FrontexPervier",10,8,new Position(7.739068865776063,48.579151841289139),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(193,"place_du_temple_neuf_T_1","193","ListenUp",10,12,new Position(7.747946977615357,48.583037865781947),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(194,"place_du_vieux_marché_aux_vins_1","194","ConvaincreSurLEurope",10,6,new Position(7.74178460240364,48.583659779411256),10,TypeOrignalité.O2,false,false,TypeEuropeen.E3,true,true,false,true,false,false,false,true,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(195,"place_golbery_1","39_golbery","Lancerdebudget",10,6,new Position(7.766153812408446,48.587280211653635),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(196,"place_golbery_2","39_golbery","Lancerdebudget",10,6,new Position(7.766749262809753,48.587521505441153),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(197,"place_golbery_3","39_golbery","Lancerdebudget",10,6,new Position(7.766813635826112,48.587289082769175),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(198,"place_gutemberg_4","198","Reconstitutionshistoriques",10,6,new Position(7.74886965751648,48.58113570299313),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(199,"place_gutemberg_T_1","31_Gutemberg","RencontreEsperanto",10,4,new Position(7.748429775238036,48.581142800748552),15,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(200,"place_gutemberg_T_2","31_Gutemberg","RencontreEsperanto",10,4,new Position(7.748569250106812,48.581071823149678),15,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(201,"place_gutemberg_T_3","201","ValisesDesRegions",10,12,new Position(7.748719453811645,48.581178289510611),10,TypeOrignalité.O2,false,true,TypeEuropeen.E3,false,true,false,true,false,false,true,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(202,"place_hans_jean_arp_1","34_ENA","FrontexPervier",10,8,new Position(7.736574411392212,48.580056832582905),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(203,"place_hans_jean_arp_2","34_ENA","FrontexPervier",10,8,new Position(7.736939191818237,48.580024891989538),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(204,"place_hans_jean_arp_3","34_ENA","FrontexPervier",10,8,new Position(7.736445665359497,48.580972454343843),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(205,"place_kleber_T_1","205","Porteurdeparole",10,8,new Position(7.745962142944335,48.583555979808281),15,TypeOrignalité.O1,false,false,TypeEuropeen.E2,true,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(206,"place_mathias_merian_T_1","4_Merian","DessinInfini",10,6,new Position(7.75423675775528,48.58234408149081),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(207,"place_mathias_merian_T_2","4_Merian","DessinInfini",10,6,new Position(7.754169702529907,48.582420380485054),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(208,"place_saint_etienne_T_1","4_StEtienne","DessinInfini",10,6,new Position(7.754703462123871,48.583389190256199),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(209,"place_saint_etienne_T_2","4_StEtienne","DessinInfini",10,6,new Position(7.754808068275451,48.583280954188567),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(210,"place_saint_pierre_le_jeune_3","23_PierreLeJeune","LEuropeAlAveugle",10,6,new Position(7.746930420398712,48.58553079723869),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(211,"place_saint_pierre_le_jeune_4","23_PierreLeJeune","LEuropeAlAveugle",10,6,new Position(7.746804356575012,48.58543498577518),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(212,"place_saint_pierre_le_jeune_T_","12_PierreLeJeune","ListenUp",10,12,new Position(7.747238874435424,48.585482891529658),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(213,"place_saint_pierre_le_jeune_T_1","12_PierreLeJeune","ListenUp",10,12,new Position(7.747212052345276,48.585351594168344),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(214,"place_saint_pierre_le_vieux_2","214","ConvaincreSurLEurope",10,6,new Position(7.73934781551361,48.582714929010173),10,TypeOrignalité.O2,false,false,TypeEuropeen.E3,true,true,false,true,false,false,false,true,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(215,"place_saint_pierre_le_vieux_T_1","215","ListenUp",10,12,new Position(7.740147113800049,48.583169169154075),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(218,"place_saint_thomas_T_3","218","LEuropeAlAveugle",10,6,new Position(7.744771242141723,48.579776464463329),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(219,"place_sainte_madeleine_3","34_madeleine","FrontexPervier",10,8,new Position(7.754534482955933,48.580216535246969),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(220,"place_sainte_madeleine_4","34_madeleine","FrontexPervier",10,8,new Position(7.754137516021728,48.579815503155444),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(221,"place_sainte_madeleine_5","34_madeleine","FrontexPervier",10,8,new Position(7.754523754119874,48.579588368524185),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(222,"place_sainte_madeleine_T_1","222","Creationdunehistoire",10,12,new Position(7.754411101341248,48.580401079919262),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(223,"place_sainte_madeleine_T_2","223","Creationdunehistoire",10,12,new Position(7.754502296447754,48.580418824563765),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(224,"place_sebastien_brant_1","224","Lancerdebudget",10,6,new Position(7.763814926147461,48.586472933621877),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(225,"pont_de_la_dordogne_1","39_Dordogne","Lancerdebudget",10,6,new Position(7.764705419540404,48.590858693265645),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(226,"pont_de_la_dordogne_2","39_Dordogne","Lancerdebudget",10,6,new Position(7.765005826950074,48.591021909983411),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(227,"pont_lauth_1","28_pontlauth","TokyoTrain",10,8,new Position(7.763364315032959,48.593895857114362),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(228,"pont_lauth_2","28_pontlauth","TokyoTrain",10,8,new Position(7.763340175151825,48.593686525744445),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(229,"pont_royal_1","45_pontroyal","Lesstatueseuropeennes",10,15,new Position(7.758246660232544,48.584727039887483),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(230,"pont_royal_2","45_pontroyal","Lesstatueseuropeennes",10,15,new Position(7.758343219757079,48.58487253333567),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(231,"pont_saint_martin_1","231","Semaphore",10,3,new Position(7.743033170700073,48.58001779407715),20,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,true,false,false,false,false,true,true,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(232,"pont_saint_martin_2","232","Apprends_moiquelquechose..",10,6,new Position(7.743285298347472,48.580110066860307),10,TypeOrignalité.O1,false,true,TypeEuropeen.E1,true,true,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(233,"pont_saint_thomas_1","233","Semaphore",10,3,new Position(7.744787335395813,48.578835977768414),20,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,true,false,false,false,false,true,true,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(234,"ponts_couvert_2","234","Semaphore",10,3,new Position(7.739261984825133,48.579787111382345),20,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,true,false,false,false,false,true,true,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(235,"ponts_couvert_4","235","Semaphore",10,3,new Position(7.738468050956726,48.579286703764168),20,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,true,false,false,false,false,true,true,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(236,"ponts_couvert_5","236","Reconstitutionshistoriques",10,6,new Position(7.737641930580139,48.579822601096225),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(237,"promenade_alcide_de_gasperi_1","237","TokyoTrain",10,8,new Position(7.769699692726135,48.59826146030499),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(238,"promenade_alcide_de_gasperi_2","238","TaboosurlespaysdEurope",10,12,new Position(7.770230770111084,48.597078296706826),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,true,false));
    listCheckPoint.add(new CheckPoint(239,"promenade_alcide_de_gasperi_3","239","TokyoTrain",10,8,new Position(7.769021093845367,48.596326166309808),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(240,"quai_de_la_bruche_1","240","Semaphore",10,3,new Position(7.73860216140747,48.580660151110848),20,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,true,false,false,false,false,true,true,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(241,"quai_de_la_bruche_2","241","Lesstatueseuropeennes",10,15,new Position(7.738966941833496,48.580787911757561),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(242,"quai_du_bassin_de_lill_1","242","TokyoTrain",10,8,new Position(7.767891883850098,48.595111026325618),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(243,"quai_du_bassin_de_lill_2","243","TaboosurlespaysdEurope",10,12,new Position(7.769546806812286,48.595951870830959),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,true,false));
    listCheckPoint.add(new CheckPoint(244,"quai_du_bassin_de_lill_3","244","TokyoTrain",10,8,new Position(7.771668434143066,48.596223279677297),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(245,"quai_ernest_bevin_1","245","Reconstitutionshistoriques",10,6,new Position(7.771695256233214,48.597454357706162),10,TypeOrignalité.O2,false,false,TypeEuropeen.E2,false,false,true,false,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(246,"quai_ernest_bevin_2","246","Dixit",10,3,new Position(7.769589722156525,48.598651703090582),20,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(247,"quai_jacques_sturm_1","247","JeparsenvoyageenEurope",10,18,new Position(7.751219272613525,48.587069078644504),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(248,"quai_rouget_de_lisle_1","248","Lancerdebudget",10,6,new Position(7.763361632823945,48.587491343780719),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(249,"quai_rouget_de_lisle_2","249","Lancerdebudget",10,6,new Position(7.764405012130737,48.589879381887656),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(250,"quai_rouget_de_lisle_3","250","Lancerdebudget",10,6,new Position(7.7668297290802,48.591752830556629),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(251,"quai_rouget_de_lisle_4","251","TokyoTrain",10,8,new Position(7.766969203948974,48.592703721108109),15,TypeOrignalité.O2,false,false,TypeEuropeen.E1,false,false,false,true,false,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(252,"quai_saint_etienne_1","252","RecetteEnFouillis",10,6,new Position(7.75681972503662,48.583115938098381),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(253,"quai_saint_etienne_2","253","Lesstatueseuropeennes",10,15,new Position(7.756213545799255,48.583832778275791),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(254,"quai_schoepflin_1","254","Lesstatueseuropeennes",10,15,new Position(7.752056121826173,48.586228086307457),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(255,"quai_schoepflin_2","255","RecetteEnFouillis",10,6,new Position(7.751154899597168,48.586551000632149),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(256,"rue_brulée","256","RecetteEnFouillis",10,6,new Position(7.75232970714569,48.584883179181283),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(257,"rue_de_la_division_leclerc_1","24_Leclerc","LEuropeATrous",10,4,new Position(7.74649053812027,48.580683219029289),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(258,"rue_de_la_division_leclerc_2","24_Leclerc","LEuropeATrous",10,4,new Position(7.746613919734955,48.580569653790718),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(259,"rue_de_la_division_leclerc_3","24_Leclerc","LEuropeATrous",10,4,new Position(7.746734619140625,48.58047383292223),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(260,"rue_de_la_grange_1","260","Apprends_moiquelquechose..",10,6,new Position(7.744765877723693,48.583027219547652),10,TypeOrignalité.O1,false,true,TypeEuropeen.E1,true,true,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(261,"rue_de_la_krutenau_1","22_Krutenau","QuiSuis_Je?",10,3,new Position(7.757130861282349,48.581103763081494),20,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(262,"rue_de_la_pierre_large","262","RecetteEnFouillis",10,6,new Position(7.756119668483733,48.582436350027415),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(263,"rue_de_la_rape_1","263","RecetteEnFouillis",10,6,new Position(7.753118276596068,48.581817082966843),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(264,"rue_de_la_schiffmatt_1","264","Lancerdebudget",10,6,new Position(7.769640684127807,48.590590803814408),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(265,"rue_de_la_vignette_T_1","12_GrandRue","ListenUp",10,12,new Position(7.74259328842163,48.582533941565529),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(266,"rue_des_aveugles_T_1","12_GrandRue","ListenUp",10,12,new Position(7.741692066192626,48.582509100100992),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(267,"rue_des_chandelles_1","267","ConvaincreSurLEurope",10,6,new Position(7.746455669403075,48.582658148705164),10,TypeOrignalité.O2,false,false,TypeEuropeen.E3,true,true,false,true,false,false,false,true,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(268,"rue_des_juifs","268","RecetteEnFouillis",10,6,new Position(7.753413319587708,48.584237327155279),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(269,"rue_des_planches_1","269","LEuropeAlAveugle",10,6,new Position(7.75957703590393,48.580787911757561),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(270,"rue_du_22_novembre_1","270","Porteurdeparole",10,8,new Position(7.745264768600463,48.582732672842418),15,TypeOrignalité.O1,false,false,TypeEuropeen.E2,true,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(271,"rue_du_bain_aux_plantes_1","271","FrontexPervier",10,8,new Position(7.740415334701537,48.581433807861856),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(272,"rue_du_ciel_1","272","RecetteEnFouillis",10,6,new Position(7.754191160202026,48.583440646666098),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(273,"rue_du_fossé_des_tailleurs_1","273","Lesstatueseuropeennes",10,15,new Position(7.748923301696777,48.581655610938945),12,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,false,false,true,false,false,true,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(274,"rue_du_fossé_des_tanneurs_T_1","12_GrandRue","ListenUp",10,12,new Position(7.74286150932312,48.581930645402792),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(275,"rue_du_fossé_des_tanneurs_T_2","12_GrandRue","ListenUp",10,12,new Position(7.743006348609923,48.582099214173169),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(276,"rue_du_fossé_des_tanneurs_T_3","12_GrandRue","ListenUp",10,12,new Position(7.743137776851655,48.582258910384446),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(277,"rue_du_paon_T_1","277","Porteurdeparole",10,8,new Position(7.747807502746581,48.580379786337623),15,TypeOrignalité.O1,false,false,TypeEuropeen.E2,true,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(278,"rue_du_sanglier_1","16_Dome","Dixit",10,3,new Position(7.74935245513916,48.583293374732698),20,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(279,"rue_du_saumon_1","279","Twister",10,16,new Position(7.746680974960327,48.582264233582784),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(280,"rue_du_savon_1","280","Twister",10,16,new Position(7.744202613830566,48.581884510693953),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(281,"rue_du_vieil_hopital_T_1","3_VieilHopital_Tripiers","Creationdunehistoire",10,12,new Position(7.750178575515747,48.580539487981333),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(282,"rue_du_vieil_hopital_T_2","3_VieilHopital_Tripiers","Creationdunehistoire",10,12,new Position(7.750248312950135,48.580486254156156),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(283,"rue_du_vieil_hopital_T_3","3_VieilHopital_Tripiers","Creationdunehistoire",10,12,new Position(7.750334143638611,48.580393982059725),10,TypeOrignalité.O1,false,false,TypeEuropeen.E2,false,false,true,true,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(284,"rue_du_vieux_marché_aux_grains_1","284","RecetteEnFouillis",10,6,new Position(7.747002840042114,48.582615563434516),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(285,"rue_du_vieux_marché_aux_grains_2","285","Apprends_moiquelquechose..",10,6,new Position(7.747201323509215,48.582143574282462),10,TypeOrignalité.O1,false,true,TypeEuropeen.E1,true,true,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(286,"rue_du_vieux_marché_aux_poissons_T_1","16_Douane","LEuropeATrous",10,4,new Position(7.749896943569183,48.579932619050894),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(287,"rue_du_vieux_marché_aux_poissons_T_2","16_Douane","LEuropeATrous",10,4,new Position(7.749947905540465,48.57988470803555),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(288,"rue_du_vieux_marché_aux_poissons_T_3","16_Douane","LEuropeATrous",10,4,new Position(7.749988138675689,48.579842120428232),15,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(289,"rue_geiller_1","289","Lancerdebudget",10,6,new Position(7.770751118659972,48.585890975745208),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(290,"rue_geiller_2","290","Lancerdebudget",10,6,new Position(7.769243717193604,48.586366478413552),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(291,"rue_goethe_1","291","Lancerdebudget",10,6,new Position(7.768353223800659,48.583985371654542),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(292,"rue_gutemberg_1","292","Europedesrealisationsquotidiennes",10,6,new Position(7.747431993484497,48.581408965856625),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,true,false,false,true,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(293,"rue_herder_1","293","Lancerdebudget",10,6,new Position(7.767889201641083,48.588798923944402),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,true,false,false,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(294,"rue_pierre_bucher_1","294","RecetteEnFouillis",10,6,new Position(7.755500078201293,48.584826401312093),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(295,"rue_pierre_de_coubertin_1","295","Twister",10,16,new Position(7.771925926208496,48.597878309909774),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(296,"rue_sainte_barbe_1","296","Apprends_moiquelquechose..",10,6,new Position(7.745549082756042,48.581689324921442),10,TypeOrignalité.O1,false,true,TypeEuropeen.E1,true,true,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(297,"ruelle_de_l''abreuvoir_1","297","RecetteEnFouillis",10,6,new Position(7.754676640033721,48.581609475979072),10,TypeOrignalité.O2,false,true,TypeEuropeen.E0,true,false,false,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(298,"ruelle_de_la_farine_1","7_PlaceHopital","TaboosurlespaysdEurope",10,12,new Position(7.750216126441956,48.577611544342979),10,TypeOrignalité.O1,false,false,TypeEuropeen.E3,false,false,false,true,false,false,true,false,false,true,false,true,false,false));
    listCheckPoint.add(new CheckPoint(299,"ruelle_des_chanvriers_1","22_Krutenau","QuiSuis_Je?",10,3,new Position(7.756959199905396,48.581494138395179),20,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(300,"ruelle_des_ramoneurs_T_1","22_Krutenau","QuiSuis_Je?",10,3,new Position(7.756808996200561,48.581668031882479),20,TypeOrignalité.O0,false,false,TypeEuropeen.E2,false,false,false,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(301,"square_allende_3","34_allende","FrontexPervier",10,8,new Position(7.761154174804688,48.578921154642529),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(302,"square_allende_4","34_allende","FrontexPervier",10,8,new Position(7.760826945304871,48.578788065713667),15,TypeOrignalité.O3,false,false,TypeEuropeen.E0,false,true,false,false,true,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(303,"square_allende_T_1","24_Allende","ConstruisonsLEurope",10,4,new Position(7.761253416538238,48.579355909368239),15,TypeOrignalité.O2,false,false,TypeEuropeen.E3,false,true,true,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(304,"square_allende_T_2","24_Allende","ConstruisonsLEurope",10,4,new Position(7.761371433734893,48.579325742834534),15,TypeOrignalité.O2,false,false,TypeEuropeen.E3,false,true,true,true,false,false,false,false,false,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(305,"square_louise_weiss_3","305","Twister",10,16,new Position(7.739916443824767,48.580755971626161),15,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,false,false,false,true,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(306,"square_louise_weiss_T_1","12_LouiseWeiss","ListenUp",10,12,new Position(7.73961067199707,48.580610466327684),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(307,"square_louise_weiss_T_2","12_LouiseWeiss","ListenUp",10,12,new Position(7.740324139595032,48.580865987549373),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,false,false));
    listCheckPoint.add(new CheckPoint(308,"square_trivoli_1","33_Trivoli","CoursedeGarçonsdeCafe",10,8,new Position(7.760258316993713,48.5959696100158),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(309,"square_trivoli_2","33_Trivoli","CoursedeGarçonsdeCafe",10,8,new Position(7.759941816329955,48.595655625523889),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(310,"square_trivoli_3","33_Trivoli","CoursedeGarçonsdeCafe",10,8,new Position(7.759142518043518,48.595563381121508),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(311,"square_trivoli_4","33_Trivoli","CoursedeGarçonsdeCafe",10,8,new Position(7.75934636592865,48.59588623579296),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(312,"square_trivoli_5","33_Trivoli","CoursedeGarçonsdeCafe",10,8,new Position(7.759689688682555,48.596225053586537),15,TypeOrignalité.O1,false,false,TypeEuropeen.E0,false,false,false,false,true,false,true,false,true,true,true,true,true,false));
    listCheckPoint.add(new CheckPoint(313,"square_trivoli_T_6","12_Trivoli","ListenUp",10,12,new Position(7.759716510772705,48.596549677927364),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(314,"square_trivoli_T_7","12_Trivoli","ListenUp",10,12,new Position(7.759931087493897,48.596492913165797),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(315,"square_trivoli_T_8","12_Trivoli","ListenUp",10,12,new Position(7.760167121887207,48.596443243947107),10,TypeOrignalité.O2,false,false,TypeEuropeen.E0,false,false,true,false,false,false,false,false,true,false,true,true,true,false));
    listCheckPoint.add(new CheckPoint(316,"T_place_du_marche_neuf_1","13_MarcheNeuf","Blasondequipes",10,12,new Position(7.748295664787293,48.582505551319322),10,TypeOrignalité.O1,false,true,TypeEuropeen.E0,false,false,true,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(317,"T_place_du_marche_neuf_2","13_MarcheNeuf","Blasondequipes",10,12,new Position(7.748483419418335,48.582576526904923),10,TypeOrignalité.O1,false,true,TypeEuropeen.E0,false,false,true,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(318,"T_place_du_marche_neuf_3","13_MarcheNeuf","Blasondequipes",10,12,new Position(7.748386859893798,48.5827681604882),10,TypeOrignalité.O1,false,true,TypeEuropeen.E0,false,false,true,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(319,"T_place_du_marche_neuf_4","13_MarcheNeuf","Blasondequipes",10,12,new Position(7.748156189918518,48.582690087634596),10,TypeOrignalité.O1,false,true,TypeEuropeen.E0,false,false,true,false,false,false,false,false,false,false,false,true,false,false));
    listCheckPoint.add(new CheckPoint(320,"theatre_1","320","HymnesEuropeens",10,18,new Position(7.754942178726196,48.586465836614956),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,true,false,false,false,true,false,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(321,"theatre_2","321","HymnesEuropeens",10,18,new Position(7.75536060333252,48.585912267005149),10,TypeOrignalité.O1,false,false,TypeEuropeen.E1,false,false,false,true,false,false,false,true,false,true,true,true,false,false));
    listCheckPoint.add(new CheckPoint(322,"theatre_3","322","Dixit",10,3,new Position(7.754598855972289,48.58594065533778),20,TypeOrignalité.O3,false,false,TypeEuropeen.E2,false,false,false,true,false,false,false,false,false,false,true,true,false,false));



    listeGroupe = constituerLesRegroupements();
    nbGroupe = listeGroupe.size() - 1;
    nbPossibilite = compteNbPossiblités() / factNb;
  }

  /**
   * Nombre de checkPoint disponible dans la liste
   */
  static int nbGroupe;
  
  /**
   * Variable pour l'algorithme statistique.
   * Laisser à true pour ne pas avoir d'etape en doublon
   */
  static boolean ordered = true;
  
  /**
   * Compteur ditineraire construit
   */
  static int nbItineraire = 0;
  static long compteurGeneral = 0;
  
  static long fact(int i) {
    return i==1?1:fact(i-1)*i; 
  }
  
  static long factNb = fact(NB_CHECK_POINT_VARIABLE_PAR_ITINERAIRE);
  static long nbPossibilite;
  /**
   * Liste utilsée par l'agorythme des combinatoires
   */
  static int[] liste = new int[NB_CHECK_POINT_VARIABLE_PAR_ITINERAIRE];

  static StatRejet stat = new StatRejet();
  /**
   * construction recursive des listes possibles
   * @param index : argument permettant à l'algorithem de connaitre sa position dans la liste par appel recurisif
   */
  public static void genererItineraire(int index) {
    if (index >= NB_CHECK_POINT_VARIABLE_PAR_ITINERAIRE) {
      Itineraire itineraire = new Itineraire();
      for (int i = 0; i < liste.length; i++) {
        itineraire.ajouterEtapeSansBooking(listeGroupe.get(liste[i]));
      }
      if (!itineraire.estUneCominaisonAcceptable(stat)) {
        compteurGeneral++;
        displayAvancement();
        return;
      }
      for (Iterator<CheckPoint> it = listCheckPointObligatoire.iterator(); it.hasNext();) {
        itineraire.ajouterEtapeSansBooking(it.next());
      }
      listItinerairesTemporaires.add(itineraire);
      compteurGeneral++;
      displayAvancement();
      return;
    }

    // ajoute un nouvel element candidat dans la liste
    int start = 0;
    if (ordered && index > 0) {
      start = liste[index - 1] + 1;
    }
    for (int i = start; i < nbGroupe; i++) {
      liste[index] = i;
      genererItineraire(index + 1);
    }
  }
  
  public static void filtrerItineraireTemporaire() {
    Map<Integer,CheckPoint> map = new HashMap<Integer,CheckPoint>();
    for (Iterator<CheckPoint> it = listeGroupe.iterator(); it.hasNext();) {
      CheckPoint g = it.next();
      map.put(g.getId(), g);
    }
    for (Iterator<CheckPoint> it = listCheckPointObligatoire.iterator(); it.hasNext();) {
      CheckPoint g = it.next();
      map.put(g.getId(), g);
    }
    
    
    boolean stop = false;
    int count = 0;
    for (Iterator<Itineraire> it = listItinerairesTemporaires.iterator(); it.hasNext();) {
      if (stop) {
        break;
      }
      Itineraire itineraireTemporaire = it.next();
      if (!itineraireTemporaire.estUneCominaisonFinaleAcceptable(stat)) {
        count++;
        displayAvancement(count,listItinerairesTemporaires.size());
        continue;
      }
      int[] listeAarranger = itineraireTemporaire.getListInt();
      Itineraire itineraire =null;
      List<int[]> listeDesCombinaisons = listeArrangement(listeAarranger);
      for (int j = 0; j< listeDesCombinaisons.size(); j++) {
        if (stop) {
          break;
        }
        itineraire = new Itineraire(nbItineraire);
        int[] currentListe = listeDesCombinaisons.get(j);
        for (int i = 0; i < currentListe.length; i++) {
          itineraire.ajouterEtape(map.get(currentListe[i]));
        }
        // Check la validité de l'itineraire
        if (itineraire.estAcceptable(stat) ) {
          listItineraires.add(itineraire);
          nbItineraire++;
          break;
        } else {
          itineraire.retirerLesPassages();
        }
        itineraire = null;
      }
      count++;
      displayAvancement(count,listItinerairesTemporaires.size());
    }
  }
  
  
 
  private static long compteNbPossiblités() {
    long resultat = 1;
    for (int i = 0; i < NB_CHECK_POINT_VARIABLE_PAR_ITINERAIRE; i++) {
      resultat *= nbGroupe - i;
    }
    return resultat;
  }

  static int percentAvancement = 0;
  private static void displayAvancement() {
    double perc = compteurGeneral * 1.0 / nbPossibilite;
    int percInt = (int) Math.floor(perc*100);
    if (percInt != percentAvancement) {
      System.out.println("Avancement Combinaisons = " + percInt + " % ; nb comibinaisons = " + listItinerairesTemporaires.size());
      percentAvancement = percInt;
    }
  }

  static int percentAvancementArangement = 0;
  private static void displayAvancement(int position, int total) {
    double perc = position * 1.0 / total;
    int percInt = (int) Math.floor(perc*100);
    if (percInt != percentAvancementArangement) {
      System.out.println("Avancement Arrangement = " + percInt + " % ; nb itineraire = " + nbItineraire);
      percentAvancementArangement = percInt;
    }
  }

  
  private static List<int[]> listeArrangement(int[] seq) {
    List<int[]> resultat = new ArrayList<int[]>();
    int [] seqResultat = new int[NB_CHECK_POINT_PAR_ITINERAIRE];
    for (Iterator<int[]> it = listCombinaisonsGeneriques.iterator();it.hasNext();) {
      int[] combinaisonCourante = it.next();
      for (int pos = 0; pos < combinaisonCourante.length; pos++) {
        seqResultat[pos] = seq[combinaisonCourante[pos]];
      }
      resultat.add(seqResultat.clone());
    }
    return resultat;
  }
  
  public static List<int[]> listCombinaisonsGeneriques;
  private static void intilialiserCombinaionsGenerique() {
    listCombinaisonsGeneriques = new ArrayList<int[]>();
    listPermut(0, listCombinaisonsGeneriques);
  }
  
  
  // taille de la liste à construire
  static int size = NB_CHECK_POINT_PAR_ITINERAIRE; 
  //table des elements utilisés 
  static boolean[] elements = new boolean[size]; 
  
  static int[] model = new int[size];
  
  
  private static void listPermut(int rank, List<int[]> r) {
    // construction recursive des listes possibles
    if (rank >= size) {
      // la liste est construite -> FIN
      r.add(model.clone());
      return;
    }
    // parcours les elements
    for (int i = 0; i < size; i++) {
      // deja utilisé -> suivant
      if (elements[i])
        continue;
      // sinon on choisi cet element
      elements[i] = true;
      // on l'ajoute a la liste
      model[rank] = i;
      // on construit le reste de la liste par recursion
      listPermut(rank + 1, r);
      // on libere cet element
      elements[i] = false;
    }
    return;

  }
 
  private static PrintStream getPrintStream(boolean debugMode, String fileName) {
    if (debugMode) {
      return System.out;
    }

    File file = new File(fileName);
    PrintStream stream = null;
    try {
      stream = new PrintStream(file,"UTF-8");
    } catch (FileNotFoundException e) {
      System.err.println("Fichier non trouvé " + e.getMessage());
    } catch (UnsupportedEncodingException e) {
      System.err.println("Charset non trouvé " + e.getMessage());
    }
    return stream;
  } 

  public static void main(String[] args) throws IOException {
    tDebut = new Timestamp((new Date()).getTime());
    System.out.println("Debut "+ new Date());
    initialiserCheckPoint();
    intialiserCheckPointObligatoire();
    intilialiserCombinaionsGenerique();
    genererItineraire(0);
    filtrerItineraireTemporaire();
    dispatcherGroupes2();
    ecrireListeItineraire();
    //ecrireRapportEtapes();
    tFin = new Timestamp((new Date()).getTime());
    ecrireReporting();
    ecrireListeItineraireSQL();
    System.out.println("Fin "+ new Date());
  }


  private static void dispatcherGroupes() {
    for (Iterator<Itineraire> it = listItineraires.iterator(); it.hasNext();) {
      Itineraire i = it.next();
      int position = 0;
      List<CheckPoint> listCheckPoint = i.getParcours();
      for (Iterator<CheckPoint> itCheckPoint = listCheckPoint.iterator(); itCheckPoint.hasNext();) {
        CheckPoint c = itCheckPoint.next();
        if (c.isGroupe()) {
          Groupe g = (Groupe) c;
          for (Iterator<CheckPoint> itRegroupement = g.getListe().iterator(); itRegroupement.hasNext();) {
            CheckPoint cc = itRegroupement.next();
            if (cc.respecteLesQuotas(position)) {
              g.retirerPassage(i, position);
              i.substituer(g, cc, position);
            }
          }
        }
        position++;
      }

    }
  }
  
  
  private static void dispatcherGroupes2() {
    for (Iterator<CheckPoint> it = listeGroupe.iterator(); it.hasNext();) {
      CheckPoint c = it.next();
      Groupe g = (Groupe) c;
      List<List<Itineraire>> listItineraires = g.getListPassage();
      for (int i = 0; i < listItineraires.size(); i++) {
        List<Itineraire> listPassage = listItineraires.get(i);
        for (int j = 0 ; j < listPassage.size(); j++) {
          Itineraire itineraire = listPassage.get(j);
          CheckPoint cc = g.affecterACheckPoint(itineraire, i);
          itineraire.substituer(g, cc, i);
        }
      }
    }
  }

  private static void ecrireReporting() {
    PrintStream printStream = null;
    while (printStream == null) printStream = getPrintStream(false, FILE_NAME + "reporting" + FILE_EXTENSION);
    printStream.println("TIMING : ");
    printStream.println("Début : " + tDebut.toString());
    printStream.println("Fin : " + tFin.toString());
    printStream.println("Durée (sec) : " + (tFin.getTime() - tDebut.getTime())/1000);
    printStream.println();
    printStream.println("PARAMETRES" + CSV_CELL_DELIMITER);
    printStream.println("NB_CHECK_POINT_PAR_ITINERAIRE" + CSV_CELL_DELIMITER + NB_CHECK_POINT_PAR_ITINERAIRE);
    printStream.println("NB_CHECK_POINT_VARIABLE_PAR_ITINERAIRE" + CSV_CELL_DELIMITER + NB_CHECK_POINT_VARIABLE_PAR_ITINERAIRE);
    printStream.println("DISTANCE_MIN_ENTRE_DEUX_CHECKPOINT" + CSV_CELL_DELIMITER +DISTANCE_MIN_ENTRE_DEUX_CHECKPOINT);
    printStream.println("DISTANCE_MAX_ENTRE_DEUX_CHECKPOINT" + CSV_CELL_DELIMITER + DISTANCE_MAX_ENTRE_DEUX_CHECKPOINT);
    printStream.println("DISTANCE_MIN_TOTALE" + CSV_CELL_DELIMITER + DISTANCE_MIN_TOTALE);
    printStream.println("DISTANCE_MAX_TOTALE" + CSV_CELL_DELIMITER + DISTANCE_MAX_TOTALE);
    printStream.println("DUREE_MIN_TOTALE" + CSV_CELL_DELIMITER + DUREE_MIN_TOTALE);
    printStream.println("DUREE_MAX_TOTALE" + CSV_CELL_DELIMITER + DUREE_MAX_TOTALE);
    printStream.println("SEUIL_MINUTE_ACTIVITE_LONGUE" + CSV_CELL_DELIMITER + SEUIL_MINUTE_ACTIVITE_LONGUE);
    printStream.println("LIST_ORIGINALITE" + CSV_CELL_DELIMITER + LIST_ORIGINALITE);
    printStream.println("LIST_EUROPEEN" + CSV_CELL_DELIMITER + LIST_EUROPEEN);
    printStream.println("NB_MIN_ACTIVITE_EUROPEENE" + CSV_CELL_DELIMITER + NB_MIN_ACTIVITE_EUROPEENE);
    printStream.println("NB_MIN_ACTIVITE_PHYSIQUE" + CSV_CELL_DELIMITER + NB_MIN_ACTIVITE_PHYSIQUE);
    printStream.println("NB_MAX_ACTIVITE_PHYSIQUE" + CSV_CELL_DELIMITER + NB_MAX_ACTIVITE_PHYSIQUE);
    printStream.println("NB_MIN_ACTIVITE_THEATRE" + CSV_CELL_DELIMITER + NB_MIN_ACTIVITE_THEATRE);
    printStream.println("NB_MAX_ACTIVITE_THEATRE" + CSV_CELL_DELIMITER + NB_MAX_ACTIVITE_THEATRE);
    printStream.println("FILTRE_ACTIVITE_CREATIVE_ACTIF" + CSV_CELL_DELIMITER + FILTRE_ACTIVITE_CREATIVE_ACTIF);
    printStream.println("FILTRE_ACTIVITE_PROXIMITE_ACTIF" + CSV_CELL_DELIMITER + FILTRE_ACTIVITE_PROXIMITE_ACTIF);
    printStream.println("FILTRE_ACTIVITE_INSTITUTION_ACTIF" + CSV_CELL_DELIMITER + FILTRE_ACTIVITE_INSTITUTION_ACTIF);
    printStream.println("FILTRE_ACTIVITE_LONGUE_ACTIF" + CSV_CELL_DELIMITER + FILTRE_ACTIVITE_LONGUE_ACTIF);
    printStream.println("FILTRE_ACTIVITE_INTERPELLATION_ACTIF" + CSV_CELL_DELIMITER + FILTRE_ACTIVITE_INTERPELLATION_ACTIF);
    printStream.println("NB_ALTERNANCE_RYTHME_MIN" + CSV_CELL_DELIMITER + NB_ALTERNANCE_RYTHME_MIN);
    printStream.println();
    printStream.println(CSV_LINE_DELIMITER + "Variables d'execution :");
    printStream.println("Nombre de checkPoint possibles" + CSV_CELL_DELIMITER + nbGroupe);
    printStream.println("Nombre de possiblités" + CSV_CELL_DELIMITER + nbPossibilite);
    printStream.println("Nombre d'itineraires générés" + CSV_CELL_DELIMITER + nbItineraire);
    printStream.println();
    printStream.println("Stats ERREUR");
    printStream.print(stat.toCSV());
    printStream.println();
    printStream.println("REPARTITION GROUPE");
    for (Iterator<CheckPoint> it = listeGroupe.iterator(); it.hasNext();) {
      CheckPoint etape = it.next();
      printStream.print(etape.printReporting());
    }
    printStream.println();
    printStream.println("REPARTITION ETAPES");
    for (Iterator<CheckPoint> it = listCheckPoint.iterator(); it.hasNext();) {
      CheckPoint etape = it.next();
      printStream.print(etape.printReporting());
    }
    printStream.flush();
    printStream.close();
  }


  private static void ecrireRapportEtapes() {
    for (Iterator<CheckPoint> it = listCheckPoint.iterator(); it.hasNext();) {
      CheckPoint etape = it.next();
      PrintStream printStream = null;
      while (printStream == null) printStream = getPrintStream(false, FILE_NAME+etape.getId()+FILE_EXTENSION);
      printStream.print(etape.toCSV());
      printStream.flush();
      printStream.close();
    }
  }
  
  
  private static List<CheckPoint> constituerLesRegroupements() {
    HashMap<String, Groupe> map = new HashMap<String, Groupe>();
    for (Iterator<CheckPoint> it = listCheckPoint.iterator(); it.hasNext();) {
      CheckPoint c = it.next();
      if (map.containsKey(c.getGroupe())) {
        Groupe groupe = map.get(c.getGroupe());
        groupe.ajouterCheckPoint(c);
      } else {
        Groupe groupe = new Groupe(c.getGroupe(), c.getId());
        groupe.ajouterCheckPoint(c);
        map.put(c.getGroupe(), groupe);
      }
    }
    List<CheckPoint> listing = new ArrayList<CheckPoint>();
    for (Iterator<Groupe> it = map.values().iterator(); it.hasNext();) {
      Groupe g = it.next();
      listing.add(g);
    }
    
    return listing;
  }


  private static void ecrireListeItineraire() throws IOException {
    PrintStream printStream = null;
    while (printStream == null) printStream = getPrintStream(false, FILE_NAME+FILE_EXTENSION);
    for (Iterator<Itineraire> it = listItineraires.iterator(); it.hasNext();) {
      Itineraire itineraire = it.next();
      printStream.print(itineraire.toCSV());
    }
    printStream.flush();
    printStream.close();
  }
  
  private static void ecrireListeItineraireSQL() throws IOException {
    PrintStream printStream = null;
    while (printStream == null) printStream = getPrintStream(false, FILE_NAME+"SQL"+FILE_EXTENSION);
    for (Iterator<Itineraire> it = listItineraires.iterator(); it.hasNext();) {
      Itineraire itineraire = it.next();
      printStream.print(itineraire.toSQL());
    }
    printStream.flush();
    printStream.close();
  }

}
